package com.gzc.just.play.last.war.common.registry;

import com.gzc.just.play.last.war.common.distributed.ServiceInstance;

/**
 * 服务注册接口
 * 用于将服务注册到注册中心
 */
public interface ServiceRegistry {
    
    /**
     * 注册服务实例
     * 
     * @param instance 服务实例信息
     * @throws Exception 注册失败时抛出异常
     */
    void register(ServiceInstance instance) throws Exception;
    
    /**
     * 注销服务实例
     * 
     * @param instance 服务实例信息
     * @throws Exception 注销失败时抛出异常
     */
    void deregister(ServiceInstance instance) throws Exception;
    
    /**
     * 更新服务实例信息
     * 
     * @param instance 服务实例信息
     * @throws Exception 更新失败时抛出异常
     */
    void update(ServiceInstance instance) throws Exception;
    
    /**
     * 设置服务实例状态（健康/不健康）
     * 
     * @param instance 服务实例信息
     * @param healthy 健康状态
     * @throws Exception 设置失败时抛出异常
     */
    void setStatus(ServiceInstance instance, boolean healthy) throws Exception;
    
    /**
     * 关闭注册中心连接
     */
    void close();
}
